/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package verins.DAO;

import java.util.Iterator;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;
import javax.swing.JOptionPane;
import verins.beans.Persona;
import verins.beans.Personarnv;
import verins.beans.Representantesxproceso;
import verins.beans.Tipopersona;

/**
 *
 * @author yi
 */
public class RpteXPartidoDAO {
    
     
     
       
    
    
    
    public boolean save(Representantesxproceso rxp){
      boolean rOK=false;
   
      try{
        // Create the EntityManager
            EntityManagerFactory emf = Persistence.createEntityManagerFactory("verinsPU");
            EntityManager em = emf.createEntityManager();
            em.getTransaction().begin();

            em.merge(rxp);
            System.out.println(rxp.getRepresentantesxprocesoPK().getDni());

            em.getTransaction().commit();
            em.close();
            emf.close(); 
            rOK=true;
         
         return rOK;
         
      }catch(Exception ex){
          JOptionPane.showMessageDialog(null, "Error al grabar datos"+ex.getMessage());
          return false;
      } 
    }
    
    
    
    
    
    public boolean guardarRepresentantes(List lstRpte){
        boolean rok=false;
        
        Iterator it=lstRpte.iterator();
        Representantesxproceso rep=null;
        Personarnv prnv=null;
        while (it.hasNext()){
            rep=(Representantesxproceso)it.next();
            prnv=new PersonarnvDAO().findByDNI(rep.getRepresentantesxprocesoPK().getDni());
            Persona persona = new Persona();
            persona.setApellidomaterno(prnv.getApematerno());
            persona.setApellidopaterno(prnv.getApepaterno());
            persona.setDni(prnv.getDni());
            persona.setNombres(prnv.getNombres());
            persona.setFechanacimiento(prnv.getFechanac());
            persona.setUbigeo(prnv.getUbigeo());
            persona.setIdtipopersona(new Tipopersona(1));
            persona.setDni(prnv.getDni());
            new PersonaDAO().save(persona);
            save(rep);
        }
        rok=true;
        
        return rok;
    }
    
    public static List<Representantesxproceso> findAll(int idpartido, int idprocesoelectoral){
        List lista=null;
        
        try{
            
            EntityManagerFactory emf = Persistence.createEntityManagerFactory("verinsPU");
            EntityManager em = emf.createEntityManager();
            
            Query query=em.createQuery("SELECT e FROM Representantesxproceso e WHERE e.representantesxprocesoPK.idpartidopolitico = ?1 and e.representantesxprocesoPK.idprocesoelectoral= ?2") ;
            query.setParameter(1, idpartido);
            query.setParameter(2, idprocesoelectoral);
            lista=query.getResultList();
            
            
            em.close();    
            emf.close();
            
            return lista;
            
        }catch(Exception ex){
            System.out.println(ex.getMessage());
            System.out.println(lista!=null?lista.size():"-");
        }
        return lista;
    }
    
}
